package gvo.basicDatatypes;


import java.util.ArrayList;

public class GVOall {
	//haeh
	public ArrayList<AutorenDat> autoren = new ArrayList<AutorenDat>();
	public BuchDat buch = new BuchDat();
	public ArrayList<StichwortDat> stichworte = new ArrayList<StichwortDat>();
	
	
	public boolean containsAutorenDat(AutorenDat au){
		for(AutorenDat autor : autoren){
			if(autor.equals(au)){
				return true;
			}
		}
		return false;
	}
	public void removeAutorenDat(int pos){
		autoren.remove(pos);
	}
	public boolean removeAutorenDat(AutorenDat au){
		return autoren.remove(au);
	}
	public void removeStichwortDat(StichwortDat stw) {
		stichworte.remove(stw);
	}
	public static String addAutorenInfoTitelCSV(){
		return "\tAutor(en)";
	}
	public String[] csvTitel(){
		int anz =  BuchDat.Titel.length;
		String[] res = new String[anz+2]; 
		/*
		int i;
		for(i=0; i<anz-2; i++){
			res[i]=BuchDat.Titel[i];
		}
		*/
		System.arraycopy(BuchDat.Titel, 0, res, 0, anz);
		res[anz]="Autor(en)";
		res[++anz]="Stichwort(e)";
		return res;
	}
	public static final int IDBUCH = 0;
	public static final int TITEL = 1;
	public static final int RERONR = 2;
	public static final int REIHE = 3;
	public static final int ORTJAHR = 4;
	public static final int ISBNPREIS = 5;
	public static final int ANMERKUNG = 6;
	public static final int KOLLATION = 7;
	public static final int AUSGABEVERSION = 8;
	public static final int SIGNATUR = 9;
	public static final int ENTHALTENIN = 10;
	public static final int NEUESIGNATUR = 11;
	public static final int INBIBLIO = 12;
	public static final int MARKIERT = 13;
	public static final int NOTIZ = 14;
	public String[] csvValues(){
		int anz = getAnzFields();
		String[] res = new String[anz]; 
		res[BuchDat.IDBUCH] = buch.getIdBuch().toString();
		res[BuchDat.TITEL] = buch.getTitel();
		res[BuchDat.RERONR] = buch.getReroNr();
		res[BuchDat.REIHE] = buch.getReihe();
		res[BuchDat.ORTJAHR] = buch.getOrtJahr();
		res[BuchDat.ISBNPREIS] = buch.getIsbnPreis();
		res[BuchDat.ANMERKUNG] = buch.getAnmerkung();
		res[BuchDat.KOLLATION] = buch.getKollation();
		res[BuchDat.AUSGABEVERSION] = buch.getAusgabeVersion();
		res[BuchDat.SIGNATUR] = buch.getSignatur();
		res[BuchDat.ENTHALTENIN] = buch.getEnthaltenIn();
		res[BuchDat.NEUESIGNATUR] = String.valueOf(buch.isNeueSignatur());
		res[BuchDat.INBIBLIO] = String.valueOf(buch.isInBiblio());
		res[BuchDat.MARKIERT] = String.valueOf(buch.isMarkiert());
		res[BuchDat.NOTIZ] = buch.getNotiz();
		anz-=2;
		res[anz]=getAutorenKomb();
		res[++anz]=getStichwortKomb();
		return res;
	}
	public int getAnzFields(){
		return BuchDat.Titel.length + 2; 
	}
	public String getAutorenKomb(){
		String autstr = null;
		boolean first = true;
		for(AutorenDat autor : autoren){
			if (first){
				autstr = autor.getName();
				first = false;
			} else {
				autstr += " / "+autor.getName();
			}
			
		}
		return autstr;
	}
	public String getStichwortKomb(){
		String autstr = null;
		boolean first = true;
		for(StichwortDat stw : stichworte){
			if (first){
				autstr = stw.getStichwort();
				first = false;
			} else {
				autstr += " / "+stw.getStichwort();
			}
			
		}
		return autstr;
	}
	public String addAutorenInfoCSV(){
		String autstr = "\t";
		boolean first = true;
		for(AutorenDat autor : autoren){
			if (first){
				autstr += autor.getName();
				first = false;
			} else {
				autstr += " / "+autor.getName();
			}
			
		}
		return autstr;
	}
	public String infoCSV() {
		return buch.infoCSV()+addAutorenInfoCSV();
	}

	public static String infoTitelCSV() {
		return BuchDat.infoTitelCSV()+addAutorenInfoTitelCSV();
	}
}
